package org.cunamas.core.dto.mapper;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.cunamas.core.bean.AparienciaActitudesConductaBean;
import org.cunamas.core.bean.CondicionesExternasBean;
import org.cunamas.core.bean.ImplementosBasicosBean;
import org.cunamas.core.bean.InstrumentosDocumentacionRegistrosBean;
import org.cunamas.core.bean.LocalesBean;
import org.cunamas.core.bean.MedidasSeguridadLocalBean;
import org.springframework.jdbc.core.RowMapper;

public class LocalesMapper implements RowMapper<LocalesBean>{

	public LocalesBean mapRow(ResultSet rs, int rowNum) throws SQLException {
		LocalesBean dto = new LocalesBean();
		
		dto.setCodigo(rs.getString("CODUBIGEO"));
		dto.setValor(rs.getString("NIVEL"));
		dto.setDescripcion(rs.getString("DESCRIPCION"));
		
		dto.setNumeroComitesGestion(rs.getLong("COM"));
		dto.setNumeroLocales(rs.getLong("ww"));
		
		CondicionesExternasBean condicionesExternasBean = new CondicionesExternasBean();
		condicionesExternasBean.setCodigo(rs.getString("CODUBIGEO"));
		condicionesExternasBean.setValor(rs.getString("NIVEL"));
		condicionesExternasBean.setDescripcion(rs.getString("DESCRIPCION"));
		condicionesExternasBean.setC22(rs.getLong("c22"));
		condicionesExternasBean.setC23(rs.getLong("c23"));
		dto.setCondicionesExternasBean(condicionesExternasBean);
		
		MedidasSeguridadLocalBean medidasSeguridadLocalBean = new MedidasSeguridadLocalBean();
		medidasSeguridadLocalBean.setCodigo(rs.getString("CODUBIGEO"));
		medidasSeguridadLocalBean.setValor(rs.getString("NIVEL"));
		medidasSeguridadLocalBean.setDescripcion(rs.getString("DESCRIPCION"));
		medidasSeguridadLocalBean.setC411(rs.getLong("c411"));
		medidasSeguridadLocalBean.setC412(rs.getLong("c412"));
		medidasSeguridadLocalBean.setC413(rs.getLong("c413"));
		medidasSeguridadLocalBean.setC414(rs.getLong("c414"));
		medidasSeguridadLocalBean.setC415(rs.getLong("c415"));
		medidasSeguridadLocalBean.setC416(rs.getLong("c416"));
		medidasSeguridadLocalBean.setC417(rs.getLong("c417"));
		medidasSeguridadLocalBean.setCumple(rs.getLong("c41_cumple"));
		medidasSeguridadLocalBean.setNoCumple(rs.getLong("c41_nocumple"));
		medidasSeguridadLocalBean.setNoEvalua(rs.getLong("c41_noevalua"));
		medidasSeguridadLocalBean.setPctCumple(rs.getBigDecimal("SPc11"));
		medidasSeguridadLocalBean.setPctNoCumple(rs.getBigDecimal("SPc12"));
		medidasSeguridadLocalBean.setOptimo(rs.getLong("SO1"));
		medidasSeguridadLocalBean.setBueno(rs.getLong("SB1"));
		medidasSeguridadLocalBean.setRegular(rs.getLong("SR1"));
		medidasSeguridadLocalBean.setDeficiente(rs.getLong("SD1"));
		dto.setMedidasSeguridadLocalBean(medidasSeguridadLocalBean);
		
		ImplementosBasicosBean implementosBasicosBean = new ImplementosBasicosBean();
		implementosBasicosBean.setCodigo(rs.getString("CODUBIGEO"));
		implementosBasicosBean.setValor(rs.getString("NIVEL"));
		implementosBasicosBean.setDescripcion(rs.getString("DESCRIPCION"));
		implementosBasicosBean.setC421(rs.getLong("c421"));
		implementosBasicosBean.setC422(rs.getLong("c422"));
		implementosBasicosBean.setC423(rs.getLong("c423"));
		implementosBasicosBean.setC424(rs.getLong("c424"));
		implementosBasicosBean.setC425(rs.getLong("c425"));
		implementosBasicosBean.setC426(rs.getLong("c426"));
		implementosBasicosBean.setC427(rs.getLong("c427"));
		implementosBasicosBean.setC428(rs.getLong("c428"));
		implementosBasicosBean.setCumple(rs.getLong("c42_cumple"));
		implementosBasicosBean.setNoCumple(rs.getLong("c42_nocumple"));
		implementosBasicosBean.setNoEvalua(rs.getLong("c42_noevalua"));
		implementosBasicosBean.setPctCumple(rs.getBigDecimal("SPc24"));
		implementosBasicosBean.setPctNoCumple(rs.getBigDecimal("SPc25"));
		implementosBasicosBean.setOptimo(rs.getLong("SO3"));
		implementosBasicosBean.setBueno(rs.getLong("SB3"));
		implementosBasicosBean.setRegular(rs.getLong("SR3"));
		implementosBasicosBean.setDeficiente(rs.getLong("SD3"));
		dto.setImplementosBasicosBean(implementosBasicosBean);
		
		InstrumentosDocumentacionRegistrosBean instrumentosDocumentacionRegistrosBean = new InstrumentosDocumentacionRegistrosBean();
		instrumentosDocumentacionRegistrosBean.setCodigo(rs.getString("CODUBIGEO"));
		instrumentosDocumentacionRegistrosBean.setValor(rs.getString("NIVEL"));
		instrumentosDocumentacionRegistrosBean.setDescripcion(rs.getString("DESCRIPCION"));
		instrumentosDocumentacionRegistrosBean.setC431(rs.getLong("c431"));
		instrumentosDocumentacionRegistrosBean.setC432(rs.getLong("c432"));
		instrumentosDocumentacionRegistrosBean.setC433(rs.getLong("c433"));
		instrumentosDocumentacionRegistrosBean.setC434(rs.getLong("c434"));
		instrumentosDocumentacionRegistrosBean.setC435(rs.getLong("c435"));
		instrumentosDocumentacionRegistrosBean.setC436(rs.getLong("c436"));
		instrumentosDocumentacionRegistrosBean.setC437(rs.getLong("c437"));
		instrumentosDocumentacionRegistrosBean.setC438(rs.getLong("c438"));
		instrumentosDocumentacionRegistrosBean.setC439(rs.getLong("c439"));
		instrumentosDocumentacionRegistrosBean.setC4310(rs.getLong("c4310"));
		instrumentosDocumentacionRegistrosBean.setCumple(rs.getLong("c43_cumple"));
		instrumentosDocumentacionRegistrosBean.setNoCumple(rs.getLong("c43_nocumple"));
		instrumentosDocumentacionRegistrosBean.setNoEvalua(rs.getLong("c43_noevalua"));
		instrumentosDocumentacionRegistrosBean.setPctCumple(rs.getBigDecimal("SPc39"));
		instrumentosDocumentacionRegistrosBean.setPctNoCumple(rs.getBigDecimal("SPc40"));
		instrumentosDocumentacionRegistrosBean.setOptimo(rs.getLong("SO5"));
		instrumentosDocumentacionRegistrosBean.setBueno(rs.getLong("SB5"));
		instrumentosDocumentacionRegistrosBean.setRegular(rs.getLong("SR5"));
		instrumentosDocumentacionRegistrosBean.setDeficiente(rs.getLong("SD5"));
		dto.setInstrumentosDocumentacionRegistrosBean(instrumentosDocumentacionRegistrosBean);
		
		AparienciaActitudesConductaBean aparienciaActitudesConductaBean = new AparienciaActitudesConductaBean();
		aparienciaActitudesConductaBean.setCodigo(rs.getString("CODUBIGEO"));
		aparienciaActitudesConductaBean.setValor(rs.getString("NIVEL"));
		aparienciaActitudesConductaBean.setDescripcion(rs.getString("DESCRIPCION"));
		aparienciaActitudesConductaBean.setC441(rs.getLong("c441"));
		aparienciaActitudesConductaBean.setC442(rs.getLong("c442"));
		aparienciaActitudesConductaBean.setC443(rs.getLong("c443"));
		aparienciaActitudesConductaBean.setC444(rs.getLong("c444"));
		aparienciaActitudesConductaBean.setC445(rs.getLong("c445"));
		aparienciaActitudesConductaBean.setCumple(rs.getLong("c446"));
		aparienciaActitudesConductaBean.setNoCumple(rs.getLong("c447"));
		aparienciaActitudesConductaBean.setNoEvalua(rs.getLong("c448"));
		aparienciaActitudesConductaBean.setPctCumple(rs.getBigDecimal("SPc49"));
		aparienciaActitudesConductaBean.setPctNoCumple(rs.getBigDecimal("SPc50"));
		aparienciaActitudesConductaBean.setOptimo(rs.getLong("SO7"));
		aparienciaActitudesConductaBean.setBueno(rs.getLong("SB7"));
		aparienciaActitudesConductaBean.setRegular(rs.getLong("SR7"));
		aparienciaActitudesConductaBean.setDeficiente(rs.getLong("SD7"));
		dto.setAparienciaActitudesConductaBean(aparienciaActitudesConductaBean);
		
		dto.setTotalCumple(rs.getLong("tcum"));
		dto.setTotalNoCumple(rs.getLong("tncum"));
		dto.setTotalNoEvalua(rs.getLong("tneval"));
		
		dto.setTotalPctCumple(rs.getBigDecimal("SPTcum"));
		dto.setTotalPctNoCumple(rs.getBigDecimal("SPTncum"));
		
		dto.setTotalOptimo(rs.getLong("SOT"));
		dto.setTotalBueno(rs.getLong("SBT"));
		dto.setTotalRegular(rs.getLong("SRT"));
		dto.setTotalDeficiente(rs.getLong("SDT"));
		
		return dto;
	}

}
